#!/usr/bin/python3
# -*- coding:utf-8 -*-  
import redis
r = redis.Redis(host='127.0.0.1',port=6379,db=0)
print("Link succeed!\n")
#print会自动在行尾打印换行符，所以这个\n是多余的
print("Server is running now: " + str(r.ping()))

#操作String类型
#添加数据
r.set("name", "ruddhowl")
print(bytes.decode(r.get("name")))
print(type(r.get("name")))
#添加一个值
r.append("name", " is very good")
print(bytes.decode(r.get("name")))
#删除一个变量
r.delete("name")
print(r.get("name"))
print(type(r.get("name")))

#设置多个键值对
r.mset({'name':'liuling','age':'23','qq':'22222222222'})
print(str(r.get("name")) + "-" + str(r.get("age")) + "-" + str(r.get("qq")))
print(type(r.get("name")))
#将key中存储的数字增一
r.incr("age")
r.incr("qq")
print(str(r.get("name")) + "-" + str(r.get("age")) + "-" + str(r.get("qq")))

#操作列表类型List
#开始前，先移除所有的内容，我这边好像没有？
#print(str(r.get("java framework")))
r.delete("java framework")
print(r.lrange("java framework", 0, -1))
print(str(r.get("java framework")))
#先向key "jave framework"中存放三条数据
r.lpush("java framework", "spring")
r.lpush("java framework", "struts")
r.lpush("java framework", "hibernate")
#再取出所有数据redis.lrange是按范围取出，
#第一个是key，第二个是起始位置，第三个是结束位置
#redis.llen获取长度 -1表示取得所有
print(r.lrange("java framework", 0, -1))

r.delete("java framework")  
r.rpush("java framework","spring")  
r.rpush("java framework","struts")  
r.rpush("java framework","hibernate")  
print(r.lrange("java framework",0,-1))  

#SET  
#添加数据  
r.sadd("user","liuling")  
r.sadd("user","xinxin")  
r.sadd("user","ling")  
r.sadd("user","zhangxinxin")  
r.sadd("user","who")  
print(r.smembers("user"))  
#判断 who 是否是user集合的元素  
print(r.sismember("user", "who"))  
r.srem("user","who")  
print(r.sismember("user", "who"))  
print(bytes.decode(r.srandmember("user")))  
#返回集合的元素个数  
print(r.scard("user"))  